In most computer systems, data displayed to a user often cannot fit completely within a display area. It is common to display a part of the data, and to provide some mechanism in a user interface to allow the display to be scrolled. In response to actions from the user indicating that the display should be scrolled, other parts of the data are displayed.
Frequently, a representation of data in a display differs from a representation of the data as it is stored in a file, database or memory. In other words, data in its original representation is rendered to create the display.
When creating a scrolling display of data, a tradeoff arises as to when the data is rendered into its displayed representation. In particular, rendering of data into a displayed representation involves both computation costs and storage costs. On the one hand, rendering could occur only when the data is to be displayed. However, the time involved in computing the rendered data could cause a delay in the display of the rendered data, and a poor user experience. In addition, caching of rendered data after it is displayed, to avoid re-computation, would consume substantial memory. On the other hand, rendering all data for a scrolling display would eliminate delays due to computation, but instead would consume a substantial amount of memory.